package com.atguigu.algorithm.sort;

import java.util.Arrays;

/**
 * 冒泡排序
 * 思路：
 * 1、每次比较相邻的两个元素
 * 2、每一趟比较后，将最大的数字冒出
 * 优化：
 * 如果一趟下来没有发生交换，就表示已经排序完成
 *
 * @author xr-8
 * @create 2021-03-03 13:35
 */
public class BubbleSort {

    public static void main(String[] args) {
        int arr[] = {5, 0, 7, 4, 10, 1};
//        int arr[] = {1, 2, 3, 4, 5, 6};
//        int arr[] = {2, 1, 3, 4, 5, 6};
        sort(arr);
    }

    public static void sort(int[] arr) {
        boolean status;
        int temp;
        for (int i = 0; i < arr.length - 1; i++) {
            status = true;
            for (int j = 0; j < arr.length - 1 - i; j++) {
                System.out.println("产生交换");
                if (arr[j] > arr[j + 1]) {
                    status = false;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
            if (status) {// 在一趟排序中，一次交换都没有发生过
                break;
            }
        }
        System.out.println(Arrays.toString(arr));
    }

}
